//定义需求
//文件缓存 和 内存缓存 实现两个方法 setByKey(String key,T value)和getKey()

//定义泛型的缓存接口 保存数据类型为T
abstract class Cache<T> {
  void setByKey<T>(String key, T value);
}

//定义文件缓存
class FiledCache<T> implements Cache<T> {
  @override
  void setByKey<T>(String key, T value) {
    print("将数据保存到文件缓存,key=${key},value=${value}");
  }
}

//定义内存缓存
class MemoryCache<T> implements Cache<T> {
  @override
  void setByKey<T>(String key, T value) {
    print("将数据保存到内存缓存,key=${key},value=${value}");
  }
}

void main() {
  FiledCache filedCache = new FiledCache<String>();
  filedCache.setByKey("数据", "123");

  MemoryCache memoryCache = new MemoryCache<int>();
  memoryCache.setByKey("数据", 123);
}
